package cn.huiyunche.base.service.form;

import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.Range;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.format.annotation.DateTimeFormat.ISO;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.math.BigDecimal;
import java.util.Date;

public class OrderByExcelVo {

    //发运省编码
    @NotBlank(message = "发运省编码不能为空！")
    @Pattern(regexp = "^(\\d{6})$", message = "发运省编码格式错误！")
    private String departProvinceCode;

    //发运省名称
    @NotBlank(message = "发运省名称不能为空！")
    @Length(max = 100, message = "发运省名称长度不能超过100！")
    private String departProvinceName;

    //发运市编码
    @NotBlank(message = "发运市编码不能为空！")
    @Pattern(regexp = "^(\\d{6})$", message = "发运市编码格式错误！")
    private String departCityCode;

    //发运市名称
    @NotBlank(message = "发运市名称不能为空！")
    @Length(max = 100, message = "发运市名称长度不能超过100！")
    private String departCityName;

    //发运区县编码
    @NotBlank(message = "发运区县编码不能为空！")
    @Pattern(regexp = "^(\\d{6})$", message = "发运区县编码格式错误！")
    private String departCountyCode;

    //发运市名称
    @NotBlank(message = "发运区县名称不能为空！")
    @Length(max = 100, message = "发运区县名称长度不能超过100！")
    private String departCountyName;

    //发运单位
    @NotBlank(message = "发运单位不能为空！")
    @Length(max = 200, message = "发运单位长度不能超过200！")
    private String departUnit;

    //发运详细地址
    @NotBlank(message = "发运详细地址不能为空！")
    @Length(max = 200, message = "发运详细地址长度不能超过200！")
    private String departAddr;

    //发运联系人
    @NotBlank(message = "发运联系人不能为空！")
    @Length(max = 20, message = "发运省联系人长度不能超过20！")
    private String departContact;

    //发运联系电话
    @NotBlank(message = "发运联系电话不能为空！")
    @Length(max = 20, message = "发运联系人电话长度不能超过20！")
    private String departPhone;

    //送达省编码
    @NotBlank(message = "送达省编码不能为空！")
    @Pattern(regexp = "^(\\d{6})$", message = "送达省编码格式错误！")
    private String receiptProvinceCode;

    //送达省名称
    @NotBlank(message = "送达省名称不能为空！")
    @Length(max = 100, message = "送达省名称长度不能超过100！")
    private String receiptProvinceName;

    //送达市编码
    @NotBlank(message = "送达市编码不能为空！")
    @Pattern(regexp = "^(\\d{6})$", message = "送达市编码格式错误！")
    private String receiptCityCode;

    //送区县名称
    @NotBlank(message = "送达区县不能为空！")
    @Length(max = 100, message = "送达区县名称长度不能超过100！")
    private String receiptCountyName;

    //送达市编码
    @NotBlank(message = "送达区县编码不能为空！")
    @Pattern(regexp = "^(\\d{6})$", message = "送达区县编码格式错误！")
    private String receiptCountyCode;

    //送达市名称
    @NotBlank(message = "送达市不能为空！")
    @Length(max = 100, message = "送达市名称长度不能超过100！")
    private String receiptCityName;

    //送达单位
    @NotBlank(message = "送达单位不能为空！")
    @Length(max = 200, message = "送达单位长度不能超过200！")
    private String receiptUnit;

    //送达详细地址
    @NotBlank(message = "送达详细地址不能为空！")
    @Length(max = 200, message = "送达详细地址长度不能超过200！")
    private String receiptAddr;

    //送达联系人
    @NotBlank(message = "送达联系人不能为空！")
    @Length(max = 20, message = "送达联系人长度不能超过20！")
    private String receiptContact;

    //送达联系电话
    @NotBlank(message = "送达联系电话不能为空！")
    @Length(max = 20, message = "送达联系人电话长度不能超过20！")
    private String receiptPhone;

    //发运时间0：上午，1：下午
    @Pattern(regexp = "^(0|1)$", message = "发运时间只能为0(0~12点)或1(12~24点)！")
    private String deliveryTime;

    // 提车日期
    @DateTimeFormat(iso = ISO.DATE)
    private Date deliveryDate;

    // 送达日期
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date arriveDate;

    // 车型列表
    @NotBlank(message = "车辆信息不能为空！")
    private String vehiclesbrands;

    // 是否上门提车
    private Boolean isPick;

    // 是否送车上门
    private Boolean isDeliv;

    //是否是新车
    private Boolean isSencondhand;

    //是否能开动
    private Boolean isMobile;

    //是否是电动车
    private Boolean isElectric;

    //总估值
    @NotNull(message = "总估值不能为空！")
    @Range(min = 1, max = 1000, message = "估值须在1~1000万元之间！")
    private BigDecimal estValue;

    //物流产品id
//	@Min(value=1, message="物流产品id不能小于1！")
    private long productId;

    //订单备注
    private String comment;

    public String getDepartProvinceCode() {
        return departProvinceCode;
    }

    public void setDepartProvinceCode(String departProvinceCode) {
        this.departProvinceCode = departProvinceCode;
    }

    public String getDepartProvinceName() {
        return departProvinceName;
    }

    public void setDepartProvinceName(String departProvinceName) {
        this.departProvinceName = departProvinceName;
    }

    public String getDepartCityCode() {
        return departCityCode;
    }

    public void setDepartCityCode(String departCityCode) {
        this.departCityCode = departCityCode;
    }

    public String getDepartCityName() {
        return departCityName;
    }

    public void setDepartCityName(String departCityName) {
        this.departCityName = departCityName;
    }

    public String getDepartUnit() {
        return departUnit;
    }

    public void setDepartUnit(String departUnit) {
        this.departUnit = departUnit;
    }

    public String getDepartAddr() {
        return departAddr;
    }

    public void setDepartAddr(String departAddr) {
        this.departAddr = departAddr;
    }

    public String getDepartContact() {
        return departContact;
    }

    public void setDepartContact(String departContact) {
        this.departContact = departContact;
    }

    public String getDepartPhone() {
        return departPhone;
    }

    public void setDepartPhone(String departPhone) {
        this.departPhone = departPhone;
    }

    public String getReceiptProvinceCode() {
        return receiptProvinceCode;
    }

    public void setReceiptProvinceCode(String receiptProvinceCode) {
        this.receiptProvinceCode = receiptProvinceCode;
    }

    public String getReceiptProvinceName() {
        return receiptProvinceName;
    }

    public void setReceiptProvinceName(String receiptProvinceName) {
        this.receiptProvinceName = receiptProvinceName;
    }

    public String getReceiptCityCode() {
        return receiptCityCode;
    }

    public void setReceiptCityCode(String receiptCityCode) {
        this.receiptCityCode = receiptCityCode;
    }

    public String getReceiptCityName() {
        return receiptCityName;
    }

    public void setReceiptCityName(String receiptCityName) {
        this.receiptCityName = receiptCityName;
    }

    public String getReceiptUnit() {
        return receiptUnit;
    }

    public void setReceiptUnit(String receiptUnit) {
        this.receiptUnit = receiptUnit;
    }

    public String getReceiptAddr() {
        return receiptAddr;
    }

    public void setReceiptAddr(String receiptAddr) {
        this.receiptAddr = receiptAddr;
    }

    public String getReceiptContact() {
        return receiptContact;
    }

    public void setReceiptContact(String receiptContact) {
        this.receiptContact = receiptContact;
    }

    public String getReceiptPhone() {
        return receiptPhone;
    }

    public void setReceiptPhone(String receiptPhone) {
        this.receiptPhone = receiptPhone;
    }

    public String getDeliveryTime() {
        return deliveryTime;
    }

    public void setDeliveryTime(String deliveryTime) {
        this.deliveryTime = deliveryTime;
    }

    public Date getDeliveryDate() {
        return deliveryDate;
    }

    public void setDeliveryDate(Date deliveryDate) {
        this.deliveryDate = deliveryDate;
    }

    public Date getArriveDate() {
        return arriveDate;
    }

    public void setArriveDate(Date arriveDate) {
        this.arriveDate = arriveDate;
    }

    public String getVehiclesbrands() {
        return vehiclesbrands;
    }

    public void setVehiclesbrands(String vehiclesbrands) {
        this.vehiclesbrands = vehiclesbrands;
    }

    public Boolean getIsPick() {
        return isPick;
    }

    public void setIsPick(Boolean isPick) {
        this.isPick = isPick;
    }

    public Boolean getIsDeliv() {
        return isDeliv;
    }

    public void setIsDeliv(Boolean deliv) {
        this.isDeliv = deliv;
    }

    public Boolean getIsSencondhand() {
        return isSencondhand;
    }

    public void setIsSencondhand(Boolean sencondhand) {
        this.isSencondhand = sencondhand;
    }

    public Boolean getIsMobile() {
        return isMobile;
    }

    public void setIsMobile(Boolean mobile) {
        this.isMobile = mobile;
    }

    public BigDecimal getEstValue() {
        return estValue;
    }

    public void setEstValue(BigDecimal estValue) {
        this.estValue = estValue;
    }

    public long getProductId() {
        return productId;
    }

    public void setProductId(long productId) {
        this.productId = productId;
    }

    public String getDepartCountyCode() {
        return departCountyCode;
    }

    public void setDepartCountyCode(String departCountyCode) {
        this.departCountyCode = departCountyCode;
    }

    public String getReceiptCountyName() {
        return receiptCountyName;
    }

    public void setReceiptCountyName(String receiptCountyName) {
        this.receiptCountyName = receiptCountyName;
    }

    public String getReceiptCountyCode() {
        return receiptCountyCode;
    }

    public void setReceiptCountyCode(String receiptCountyCode) {
        this.receiptCountyCode = receiptCountyCode;
    }

    public String getDepartCountyName() {
        return departCountyName;
    }

    public void setDepartCountyName(String departCountyName) {
        this.departCountyName = departCountyName;
    }

    public Boolean getIsElectric() {
        return isElectric;
    }

    public void setIsElectric(Boolean isElectric) {
        this.isElectric = isElectric;
    }

    public String getComment() {
        return comment;
    }

    public void setComment(String comment) {
        this.comment = comment;
    }

    @Override
    public String toString() {
        return "OrderByExcelVo [departProvinceCode=" + departProvinceCode + ", departProvinceName=" + departProvinceName
                + ", departCityCode=" + departCityCode + ", departCityName=" + departCityName + ", departCountyCode="
                + departCountyCode + ", departCountyName=" + departCountyName + ", departUnit=" + departUnit
                + ", departAddr=" + departAddr + ", departContact=" + departContact + ", departPhone=" + departPhone
                + ", receiptProvinceCode=" + receiptProvinceCode + ", receiptProvinceName=" + receiptProvinceName
                + ", receiptCityCode=" + receiptCityCode + ", receiptCountyName=" + receiptCountyName
                + ", receiptCountyCode=" + receiptCountyCode + ", receiptCityName=" + receiptCityName + ", receiptUnit="
                + receiptUnit + ", receiptAddr=" + receiptAddr + ", receiptContact=" + receiptContact
                + ", receiptPhone=" + receiptPhone + ", deliveryTime=" + deliveryTime + ", deliveryDate=" + deliveryDate
                + ", arriveDate=" + arriveDate + ", vehiclesbrands=" + vehiclesbrands + ", isPick=" + isPick
                + ", isDeliv=" + isDeliv + ", isSencondhand=" + isSencondhand + ", isMobile=" + isMobile
                + ", isElectric=" + isElectric + ", estValue=" + estValue + ", productId=" + productId + ", comment="
                + comment + "]";
    }

}